Skip to content

Updates for Batch v1_1#808

Merged
sappenin merged 14 commits into
mainfrom
df/batch_v1_1
Jul 20, 2026
Merged

Updates for Batch v1_1#808
sappenin merged 14 commits into
mainfrom
df/batch_v1_1

Conversation

@sappenin

@sappenin sappenin commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Augments the Batch functionality to conform to the changes in the specification proposed in PR XRPLF/XRPL-Standards#563 (and slated to be implemented in xrpld via XRPLF/rippled#6446).

Marking this as draft until a valid xrpld container is published. Until then, the ITs in this build won't pass.

--
Batch V1.1 Implementation (XLS-0056)

Implements the V1.1 spec changes for the Batch transaction type (XLS-0056).

Key changes

BatchSigners auto-sort (V1.1 wire format requirement)

  • Batch.checkBatchSigners() now auto-sorts BatchSigners entries ascending by account address before building, using the same normalizing @Value.Check pattern as BatchSigner#checkAndNormalize(). The on-chain format rejects out-of-order entries with temBAD_SIGNER.
  • A sortedBatchSigners guard field prevents infinite recursion during the re-build.

BatchSigners cap and extra-signers rule (V1.1 spec changes)

  • Hard cap raised to 8 BatchSigners entries (was: ≤ number of inner transactions).
  • "Extra signers" are now allowed: an account may appear in BatchSigners without having its own inner transaction (e.g., co-signers, delegates). xrpl4j no longer rejects these, since whether an extra signer is legitimate requires ledger state.

Signing path (SignatureUtils, AbstractSignatureService, TransactionSigner)

  • Updated signing helpers to handle multi-account Batch transactions and the toSignableInnerBytes path required by V1.1.

Docs and validation clarifications

  • Expanded Batch.rawTransactions() Javadoc to enumerate every per-inner-transaction rule with enforcement attribution (xrpl4j vs. server-side).
  • Corrected a stale comment claiming tfInnerBatchTxn was not enforced at construction time — it has always been enforced by RawTransactionWrapper.check().

Integration tests

  • BatchTransactionIT extended to cover V1.1 multi-account batch flows against Testnet/Devnet.

sappenin added 3 commits June 17, 2026 13:19
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
@sappenin sappenin self-assigned this Jun 17, 2026
@sappenin sappenin changed the title Df/batch v1 1 Updates for Batch v1_1 Jun 17, 2026
Signed-off-by: David Fuelling <sappenin@gmail.com>
@VLEFF

VLEFF commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Nice!
Waiting for xrpld 3.3.0 to be released to test that

Signed-off-by: David Fuelling <sappenin@gmail.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.58824% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
.../org/xrpl/xrpl4j/codec/binary/XrplBinaryCodec.java 89.28% 2 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

sappenin added 4 commits July 10, 2026 13:10
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
Comment thread xrpl4j-core/src/main/java/org/xrpl/xrpl4j/model/transactions/Batch.java Outdated
Comment thread CLAUDE.md Outdated
sappenin added 2 commits July 16, 2026 11:25
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
Patel-Raj11
Patel-Raj11 previously approved these changes Jul 17, 2026
Signed-off-by: David Fuelling <sappenin@gmail.com>
Signed-off-by: David Fuelling <sappenin@gmail.com>
@sappenin
sappenin requested a review from cybele-ripple July 20, 2026 21:48
@sappenin
sappenin marked this pull request as ready for review July 20, 2026 21:51
@sappenin
sappenin merged commit daf08fa into main Jul 20, 2026
18 of 19 checks passed
@sappenin
sappenin deleted the df/batch_v1_1 branch July 20, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants